using System;
using System.Collections.Generic;
using System.Text;

namespace MakeIT.SGI.ERP.Entidades
{
	public class PessoaenderecoVO
	{
		// Impedir o uso de new para esta classe
		protected PessoaenderecoVO() { }

		// Cria uma instancia desta classe
		public static PessoaenderecoVO CreateVO()
		{
			PessoaenderecoVO pessoaendereco = new PessoaenderecoVO();
			pessoaendereco.idPessoaVO = PessoaVO.CreateVO();
			pessoaendereco.idEnderecoTipoVO = EnderecotipoVO.CreateVO();
			pessoaendereco.idLogradouroTipoVO = LogradouroVO.CreateVO();
			pessoaendereco.idLogradouroVO = LogradouroVO.CreateVO();
			pessoaendereco.idBairroVO = BairroVO.CreateVO();
			pessoaendereco.idCidadeVO = CidadeVO.CreateVO();
			return pessoaendereco;
		}
		public static PessoaenderecoVO CreateVO(int idPessoaEndereco)
		{
			PessoaenderecoVO obj = CreateVO();
			obj.idPessoaEndereco = idPessoaEndereco;
			return obj;
		}
		// Descrição amigavel do conteudo deste objeto
		public override string ToString()
		{
			return (idPessoaEndereco!=null?idPessoaEndereco.ToString():"");
		}
		// Retorna PK concatenada com ";"
		public string PKString
		{
			get { return idPessoaEndereco.ToString(); }
		}

		#region MEMBROS DA CLASSE
		public int idPessoaEndereco
		{
			get { return this._idPessoaEndereco; }
			set { this._idPessoaEndereco = value; }
		}
		private int _idPessoaEndereco;
		public int idPessoa
		{
			get { return this._idPessoa; }
			set { this._idPessoa = value; 
			      if(value!=null) this.idPessoaVO.idPessoa = (int)value; }
		}
		private int _idPessoa;
		public int idEnderecoTipo
		{
			get { return this._idEnderecoTipo; }
			set { this._idEnderecoTipo = value; 
			      if(value!=null) this.idEnderecoTipoVO.idEnderecoTipo = (int)value; }
		}
		private int _idEnderecoTipo;
		public int? idLogradouroTipo
		{
			get { return this._idLogradouroTipo; }
			set { this._idLogradouroTipo = value; 
			      if(value!=null) this.idLogradouroTipoVO.idLogradouro = (int)value; }
		}
		private int? _idLogradouroTipo;
		public int? idLogradouro
		{
			get { return this._idLogradouro; }
			set { this._idLogradouro = value; 
			      if(value!=null) this.idLogradouroVO.idLogradouro = (int)value; }
		}
		private int? _idLogradouro;
		public string logradouro
		{
			get { return this._logradouro; }
			set { this._logradouro = value; }
		}
		private string _logradouro;
		public string numero
		{
			get { return this._numero; }
			set { this._numero = value; }
		}
		private string _numero;
		public string complemento
		{
			get { return this._complemento; }
			set { this._complemento = value; }
		}
		private string _complemento;
		public string cEP
		{
			get { return this._cEP; }
			set { this._cEP = value; }
		}
		private string _cEP;
		public int? idBairro
		{
			get { return this._idBairro; }
			set { this._idBairro = value; 
			      if(value!=null) this.idBairroVO.idBairro = (int)value; }
		}
		private int? _idBairro;
		public int? idCidade
		{
			get { return this._idCidade; }
			set { this._idCidade = value; 
			      if(value!=null) this.idCidadeVO.idCidade = (int)value; }
		}
		private int? _idCidade;
		public string bairro
		{
			get { return this._bairro; }
			set { this._bairro = value; }
		}
		private string _bairro;
		public DateTime cadastro
		{
			get { return this._Cadastro; }
			set { this._Cadastro = value; }
		}
		private DateTime _Cadastro;
		public string cadastradoPor
		{
			get { return this._CadastradoPor; }
			set { this._CadastradoPor = value; }
		}
		private string _CadastradoPor;
		public DateTime edicao
		{
			get { return this._Edicao; }
			set { this._Edicao = value; }
		}
		private DateTime _Edicao;
		public string editadoPor
		{
			get { return this._EditadoPor; }
			set { this._EditadoPor = value; }
		}
		private string _EditadoPor;
		public PessoaVO idPessoaVO
		{
			get { return this._idPessoaVO; }
			set { this._idPessoaVO = value; }
		}
		private PessoaVO _idPessoaVO;
		public EnderecotipoVO idEnderecoTipoVO
		{
			get { return this._idEnderecoTipoVO; }
			set { this._idEnderecoTipoVO = value; }
		}
		private EnderecotipoVO _idEnderecoTipoVO;
		public LogradouroVO idLogradouroTipoVO
		{
			get { return this._idLogradouroTipoVO; }
			set { this._idLogradouroTipoVO = value; }
		}
		private LogradouroVO _idLogradouroTipoVO;
		public LogradouroVO idLogradouroVO
		{
			get { return this._idLogradouroVO; }
			set { this._idLogradouroVO = value; }
		}
		private LogradouroVO _idLogradouroVO;
		public BairroVO idBairroVO
		{
			get { return this._idBairroVO; }
			set { this._idBairroVO = value; }
		}
		private BairroVO _idBairroVO;
		public CidadeVO idCidadeVO
		{
			get { return this._idCidadeVO; }
			set { this._idCidadeVO = value; }
		}
		private CidadeVO _idCidadeVO;
		#endregion
	}
}
